﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinessLogic;

namespace Presentation.contenido
{
    public partial class login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                limpiarForm();
            }
        }

        public void limpiarForm()
        {
            txtNroFun.Text = "";
            txtPass.Text = "";

            //Se limpian las variables de sesion.
            Session["NroFunc"] = "";
            Session["NombreFunc"] = "";
            Session["RolFunc"] = "";

        }

        protected void btnLogin_Click(object sender, EventArgs e)
        {
            //Se guarda el numero de funcionario ingresado.
            long NroFun = long.Parse(txtNroFun.Text);
            //Se guarda la contraseña de funcionario ingresada.
            string ContFun = txtPass.Text;
            //Se vacia el label que avisa de un error en el login.
            lblErrorLogin.Text = "";
            //Se declara la instancia de persona que recibira al funcionario devuelto en la verificacion.
            Persona unaPer = Persona.verificarFuncionario(NroFun, ContFun);
            if (unaPer != null && unaPer.GetType().ToString() != "BusinessLogic.Administrador")
            {
                //Se asignan los valores de unaPer a las variables de sesion.
                Session["NroFunc"] = "" + unaPer.NroFuncionario;
                Session["NombreFunc"] = unaPer.Nombre + " " + unaPer.Apellido;
                //Se verifica el rol del funcionario por el tipo de funcionario devuelto.
                if (unaPer.GetType().ToString() == "BusinessLogic.Supervisor")
                {
                    Session["RolFunc"] = "Supervisor";
                }
                else if (unaPer.GetType().ToString() == "BusinessLogic.Tecnico")
                {
                    Session["RolFunc"] = "Tecnico";
                }
                else if (unaPer.GetType().ToString() == "BusinessLogic.Usuario")
                {
                    Session["RolFunc"] = "Usuario";
                }
                //Se redirige al home.
                Response.Redirect("~/contenido/home.aspx");
            }
            else
            {
                //Se limpia el textbox de la contraseña.
                txtPass.Text = "";
                //Se muestra un mensaje de error en el label correspndiente.
                lblErrorLogin.Text = "El numero de funcionario y/o la contraseña no son correctos!";
            }

        }
    }
}